package com.qiaoba.module.system.service;

import java.util.List;
import java.util.Set;

/**
 * 用户岗位关联 服务层
 *
 * @author ailanyin
 * @date 2023-09-10 21:33:47
 */
public interface SysUserPostService {

    /**
     * 更新用户岗位绑定关系
     *
     * @param userId   userId
     * @param postIds  postIds
     * @param isUpdate 是否是更新操作
     */
    void updateUserPost(String userId, Set<String> postIds, boolean isUpdate);

    /**
     * 删除用户绑定的所有岗位
     *
     * @param userId userId
     */
    void deleteByUserId(String userId);

    /**
     * 批量删除用户绑定的所有岗位
     *
     * @param userIds userIds
     */
    void deleteByUserIds(List<String> userIds);

    /**
     * 查询正在被使用的岗位名称列表
     *
     * @param postIds postIds
     * @return postNames
     */
    List<String> selectUsedPostNameByIds(List<String> postIds);

    /**
     * 通过userId查询所绑定的岗位ID列表
     *
     * @param userId userId
     * @return postIds
     */
    List<String> selectPostIdsByUserId(String userId);

    /**
     * 查询用户拥有的岗位
     *
     * @param userId userId
     * @return 岗位 逗号拼接
     */
    String selectPostGroup(String userId);

}
